// pages/giftCard/index.js
import Toast, { hideToast } from 'tdesign-miniprogram/toast/index';

const $api = require('../../utils/request').Api;
const login = wx.getStorageSync('login')
const app = getApp()
Page({
  /**
   * 页面的初始数据
   */
  data: {
    baseImgUrl: app.globalData.baseImgUrl,
    /** 状态 0:选择入口 1：填写表单 2：兑换成功 3：兑换失败 */
    state: 0,
    dialog: {
      show: false
    },
    /**第一步 类型选择 */
    typeSelect: {
      type: {},
      types: [
        {
          type: 0,
          src: app.globalData.baseImgUrl +'/image/CrabCard.png',
          readme: `<div style="color:rgba(255, 255, 245, .86)">
            <p style="margin-bottom:24px">尊敬的客户您好，感谢您选择<span style="color:#fa4126">将将好-蟹皇卡</span>！</p>
            <p style="margin-bottom:24px">秋风起，蟹脚痒；菊花开，闻蟹来，秋天该有的美食态度，2023年<span style="color:#fa4126">将将好-蟹皇卡</span>现已开启提货！</p>
            <p> *温馨提示:

            </p>
            <p> 
                     此蟹卡兑换有效期截止至2023年12月10日。兑换成功后，系统将在48小时内上传物流信息，请注意查收!
            </p>
          </div>`,
        },
        // {
        //   type: 1,
        //   src: 'http://111.203.231.105:801/image/ShrimpCard.png',
        //   readme: `<div style="color:rgba(255, 255, 245, .86)">
        //   <p style="margin-bottom:24px">尊敬的客户您好，感谢您选择<span style="color:#fa4126">将将好-虾卡</span>！</p>
        //   <p style="margin-bottom:24px">秋风起，蟹脚痒；菊花开，闻蟹来，秋天该有的美食态度，2023年<span style="color:#fa4126">将将好-蟹黄卡</span>现已开启提货！</p>
        //   <p>*温馨提示：此蟹卡兑换有效期戒指2023年12月10日，请您在有效期内尽快兑换，兑换成功后，系统将在48小时内上传物流信息，请注意查收！</p>
        // </div>`,
        // },
        {
          type: 2,
          src: app.globalData.baseImgUrl +'/image/Nutcard.png',
          readme: `<div style="color:rgba(255, 255, 245, .86)">
          <p style="margin-bottom:24px">尊敬的客户您好，终于等到您！
          </p>
          <p style="margin-bottom:24px">享受天然健康美味，尽在每一颗坚果。臻选全球，品质坚果。潮流高端坚果礼，2023年现已开启提货！
          </p>
          <p>*温馨提示：此卡兑换有效期截止至2024年12月31日。兑换成功后，系统将在48小时内上传物流信息，请注意查收！ </p>
        </div>`,
        },
      ],
    },
    //<span style="color:#fa4126">将将好-坚果卡</span>！
    /**第二步 表单填写 */
    form: {
      readme: {
        show: true,
        interval: 0,
      },
      translate: null,
      gift: null,
      showForm: false,
      formData: {
        deliveryCode: '', // 输入的提货码
        consignee: '',
        phone: '',
        address: '',
        code: '',
        memberNumber: login.data.data.memberNumber,
      },
    },
    code: { img: '', value: '' },
    result: {
      success: {
        src: app.globalData.baseImgUrl +'/image/goutou.png',
        title: '恭喜您，兑换成功',
        description: `<div style="color:#999999;font-size=12px">您也可以在【我的】-【全部订单】中查看兑换详情及物流信息，如有问题，请拨打<span style="color:#fa4126">010-5365 8000</span><p>客服时间：周一至周五10：00-17：00</p></div>`,
      },
      fail: {
        src: 'https://alipic.lanhuapp.com/FigmaSlicePNGf346d78fe3e18eff2206033b9813011e.png',
        title: '兑换失败',
        description:
          '<div style="color:#999999">请核实提货码及个人信息后再次提交，如有问题，请拨打<span style="color:#fa4126">1010-5365 8000</span><p>客服时间：周一至周五10：00-17：00</p></div>',
      },
    },
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {},

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {},

  onWxImportAddress () {
    wx.chooseAddress({
      success: (res) => {
        this.setData({
          'form.formData.phone': res.telNumber,
          'form.formData.consignee': res.userName,
          'form.formData.address': res.provinceName + res.cityName + res.countyName + res.detailInfo,
        })
      },
    });
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {},
  showDialog () {
    if (this.data.typeSelect.type.type !== 2) return
    this.setData({ 'dialog.show': true })
  },
  onVisibleChange(e) {
    this.setData({
      'dialog.show': e.detail.visible,
    });
  },
  /**
   * 礼品卡类型选择
   * @param {*} type
   */
  typeSelect({ target }) {
    this.data.typeSelect.type = target.dataset.type;

    this.data.form.readme = {
      show: true,
      interval: 5,
    };
    this.data.state = 1;
    this.setData(this.data);

    var interval = setInterval(() => {
      if (this.data.form.readme.interval == 0) {
        clearInterval(interval);
      } else {
        this.data.form.readme.interval--;
        this.setData(this.data);
      }
    }, 1000);
  },
  /**已知晓 */
  readmeOk() {
    this.data.form.readme.show = false;
    this.setData(this.data);
  },
  /**输入框输入事件 */
  onFormInputValue(e) {
    const { item } = e.currentTarget.dataset;
    this.data.form.formData[item] = e.detail.value;
    this.setData(this.data);
  },
  /**处理单选框 */
  handleTranslateChange({ detail }) {
    this.data.form.translate = this.data.form.translate == 0 ? null : 0;
    this.setData(this.data);
  },
  /**表单提交 */
  formSubmit() {
    if (this.data.form.gift == null) {
      if (this.data.form.formData.deliveryCode.trim().length == 0) {
        Toast({
          context: this,
          selector: '#t-toast',
          message: '请填写提货码',
          duration: 2000,
          icon: 'close-circle',
        });
      } else {
        this.verifyDeliveryCode()
        //查询 下一步
        // Toast({
        //   context: this,
        //   selector: '#t-toast',
        //   message: '查询中...',
        //   theme: 'loading',
        //   showOverlay: true,
        //   direction: 'column',
        //   duration: 500,
        // });
        // setTimeout(() => {
        //   this.data.form.gift = {
        //     name: '蟹皇礼盒',
        //     description: '公蟹4.5两 母蟹3.0两 4对8只装',
        //     image: 'http://111.203.231.105:801/image/Maskgroup.png',
        //     show: true,
        //   };
        //   this.setData(this.data);
        // }, 500);
      }
    } else {
      //表单校验 提交
      var message = null;
      if (this.data.form.formData.consignee.length == 0) {
        message = '请输入收货人信息';
      } else if (this.data.form.formData.phone.length == 0) {
        message = '请输入联系方式';
      }else if(!/^1((34[0-8])|(8\d{2})|(([35][0-35-9]|4[579]|66|7[35678]|9[1389])\d{1}))\d{7}$/.test(this.data.form.formData.phone)){
        message = '请输入合法的手机号';
      } else if (this.data.form.formData.address.length == 0) {
        message = '请输入收货地址';
      } else if (this.data.form.formData.code.length == 0) {
        message = '请输入验证码';
      } else if (this.data.form.translate == null) {
        message = '请阅读并同意《提货说明》';
      }
      if (message != null) {
        Toast({
          context: this,
          selector: '#t-toast',
          message: message,
          duration: 2000,
          icon: 'close-circle',
        });
      } else {
        // Toast({
        //   context: this,
        //   selector: '#t-toast',
        //   message: '提交中...',
        //   theme: 'loading',
        //   showOverlay: true,
        //   direction: 'column',
        //   duration: 500,
        // });

        wx.showLoading({ title: '提交中...' })
        $api.verify({ code: this.data.form.formData.code, uuid: this.data.uuid }).then(({ data: res }) => {
          if (res.code !== 2) {
            wx.hideLoading()
            return wx.showToast({ title: res.msg, icon: 'none', duration: 1500 })
          }
          $api.addShippingAddress(this.data.form.formData).then(({ data: res }) => {
            if (res.code !== 1) {
              return this.setData({ state: 3 });  // 2 成功 | 3 失败
            }
            this.data.exchangeOrderCode = res.data
            // wx.showToast({ title: '提交成功', icon: 'success', duration: 1500 })
            this.setData({ state: 2 });
          }).finally(() => wx.hideLoading())
        })
      }
    }
  },
  /**
   * 验证提货码是否可用
   */
  verifyDeliveryCode () {
    // Toast({
    //   context: this,
    //   selector: '#t-toast',
    //   message: '查询中...',
    //   theme: 'loading',
    //   showOverlay: true,
    //   direction: 'column',
    //   duration: 1000000
    // });
    wx.showLoading({ title: '查询中...' })
    // 123112
    $api.verifyDeliveryCode({ deliveryCode: this.data.form.formData.deliveryCode }).then(({ data: res }) => {
      if (res.code === 500) {
        // return Toast({ context: this, selector: '#t-toast', message: '识别错误', icon: 'close-circle' })
        return wx.showToast({ mask: true, title: '无效提货码', icon: 'none', duration: 1500 })
      }
      this.setData({
        // todo 这里需要后面完善信息后，根据 res.data 补充动态数据
        'form.gift': {
          name: res.data.cardName,
          description: res.data.specification,
          image:  res.data.image,
          show: true,
          content: res.data.content ? res.data.content.split(',') : [],
          cardName : res.data.cardName ,
          brand:res.data.brand ,
          weight:res.data.weight ,
          model:res.data.model ,
        }
      });
      this.getKaptchaImage()
    }).finally(() => {
      // hideToast({ context: this, selector: '#t-toast' })
      wx.hideLoading()
    })
  },
  showIllustrate(){
    this.data.form.readme = {
      show: true,
      interval: 0,
    };
    this.setData(this.data);
  },
  getKaptchaImage () {
    $api.getKaptchaImage().then(({ data: res }) => {
      this.setData({ 'code.img': 'data:image/jpeg;base64,' + res.img, uuid: res.uuid })
    })
  },
  /**返回首页 */
  goHome() {
    this.data.form.readme.show=false;
    this.data.form.translate = null;
    this.data.form.gift = null;
    this.data.form.formData = { deliveryCode: '', consignee: '', phone: '', address: '', code: '', memberNumber: login.data.data.memberNumber };
    this.data.state = 0;
    this.setData(this.data)
    // wx.navigateBack({
		// 	delta: 2
    // })
    wx.navigateTo({
      url: `/pages/goods/Orderdetails/orderindex?status=52`,
    })
  },
  /**
   * 重新填写
   */
  reset() {
    this.data.state = 1;
    this.data.form.readme.show=false;
    this.data.form.translate = null;
    this.data.form.gift = null;
    this.data.form.formData = { deliveryCode: '', consignee: '', phone: '', address: '', code: '', memberNumber: login.data.data.memberNumber };

    this.setData(this.data);
  },
  fabClick() {
    const phones=['01053658000'];
    wx.showActionSheet({
      itemList: phones,
      success (res) {
        console.log(res.tapIndex)
        wx.makePhoneCall({
      phoneNumber: phones[res.tapIndex], //仅为示例，并非真实的电话号码
    });
      },
      fail (res) {
        console.log(res.errMsg)
      }
    });
    // wx.makePhoneCall({
    //   phoneNumber: '13830405060', //仅为示例，并非真实的电话号码
    // });
  },
  goOrderDetaill(){
    wx.navigateTo({
      url: `/pages/order/gift-detail/index?exchangeOrderCode=${this.data.exchangeOrderCode}`,
    })

  }

});
